
/**   
 * @Title: PermissionController.java 
 * @Package: com.aft.cdcb.modules.admin.controller 
 * @Description: TODO
 * @author Mandarava  
 * @date 2016年8月25日 下午10:00:12 
 * @version 1.3.1 
 * @Email wuyan1688@qq.com
 */

package com.infoland.modules.main.controller;

import java.util.List;

import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresRoles;

import com.infoland.modules.basic.BaseController;
import com.infoland.modules.basic.Message;
import com.infoland.modules.main.model.Permission;
import com.infoland.modules.main.service.SystemService;
import com.jfinal.plugin.activerecord.Page;

/**
 * 权限管理
 * 
 * @author Mandarava
 * @date 2016年8月25日 下午10:00:12
 * @version V1.3.1
 */
@RequiresRoles(value = { "ADMIN_ROLE", "SYS_ROLE" }, logical = Logical.OR)
public class PermissionController extends BaseController<Permission> {

	/**
	 * <p>
	 * 刘洋 注意看这里，菜单ID需要封装到权限model里， 我在dao里直接传的model，从model里get的menuId
	 * 具体的查询条件看dao里方法的注释
	 * </p>
	 * <p>
	 * ---------分割线----------
	 * </p>
	 * 权限分页查询 传menuId的话就查与之对应的权限信息，不传查全部
	 * 
	 * @author Mandarava
	 */
	public void permissionList() {
		Page<Permission> page = SystemService.service.findPermissionByPage(this);
		renderJson(page);
	}

	/**
	 * 批量新增权限 记得在url后把model的个数传给我，不然取不到值
	 * 
	 * @author Mandarava
	 */
	
	public void batchSave() {
		Integer num = getParaToInt(0);
		List<Permission> modelList = getModelList("permission", num);
		Message message = SystemService.service.batchSavePermission(modelList);
		renderJson(message);
	}

	/**
	 * 修改权限前的华丽跳跃
	 * 
	 * @author Mandarava
	 */
	public void editPermission() {
		Long id = getJSONParaToLong("id");
		Permission permission = SystemService.service.findOnePermission(id);
		renderJson(permission);
	}

	/**
	 * <p>
	 * 这才是修改权限的方法
	 * </p>
	 * PS：累的我腰酸腿疼，还被蚊子咬了。
	 * 
	 * @author Mandarava
	 */
	
	public void updatePermission() {
		Permission permission = getJSONModel(Permission.class);
		Message message = SystemService.service.updatePermission(permission);
		renderJson(message);
	}

	/**
	 * <p>
	 * 删除权限
	 * </p>
	 * 最后一个终于完事了，脑袋变浆糊了， 有问题你自己一层层找吧，我明天上午去投标。
	 * 
	 * @author Mandarava
	 */
	
	public void deletePermission() {
		Long id = getJSONParaToLong("id");
		Message message = SystemService.service.deletePermission(id);
		renderJson(message);
	}

	/**
	 * 根据角色id获得数组
	 * 
	 * @author fast_ly
	 * @time:2016年8月30日 下午5:23:21
	 */
	public void permissionRoleList() {
		renderJson(SystemService.service.permissionRoleList(getJSONParaToInt("roleId")));
	}
	
	/**
	 * 增加权限数据
	 * @author lixp
	 * @time:2017年7月11日下午8:32:30
	 */
	public void savePermission(){
		Permission permission = getJSONModel(Permission.class);
		Message message = SystemService.service.savePermission(permission);
		renderJson(message);
	}
	/**
	 * 根据菜单id获得数组
	 * @author lixp
	 * @time:2017年7月12日下午9:28:30
	 */
	public void permissionMenuList(){
		renderJson(SystemService.service.permissionMenuList(getJSONParaToLong("id")));
	}
}
